package com.mmy.fta.cargo.server.mapper;

import com.mmy.fta.cargo.server.entity.CargoInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CargoInfoEntityMapper {
    /**
     * 货主小黑板分页查询
     */
    List<CargoInfoEntity> selectCargoPage(@Param("openId")String openId,@Param("num")int num);

    /**
     * 根据cargoId返回货物信息
     */
    CargoInfoEntity selectCargoInfobyCargoId(String parseInt);

    /**
     * 存储发布信息
     */
    int insertSelective(CargoInfoEntity record);

    /**
     * 查询货主小黑板发货中总条数
     */
    int count(String openId);

    /**
     * 查询货主小黑板发货中总条数
     */
    List<CargoInfoEntity> selectHistoryCargoPage(@Param("openId")String openId,@Param("num")int num);

    /**
     * 查询货主小黑板历史发货总条数
     */
    int countHistory(String shipperIdNo);

    /**
     * 编辑货源
     */
    int editCargo(CargoInfoEntity cargoInfoEntity);

    /**
     * 删除货源(下架，修改货源状态为40已下架)
     */
    int deleteCargo(String cargoId);

    /**
     * 司机小黑板 公里数、装货时间升序
     */
    List<CargoInfoEntity> selectCarrierPageAsc(
            @Param("loadAddress")String loadAddress,
            @Param("unloadAddress")String unloadAddress,
            @Param("sort")String sort,
            @Param("pageSize")int pageSize);

    /**
     * 司机小黑板 运费降序
     */
    List<CargoInfoEntity> selectCarrierPageCargoFeeDesc(
            @Param("loadAddress")String loadAddress,
            @Param("unloadAddress")String unloadAddress,
            @Param("sort")String sort,
            @Param("pageSize")int pageSize);


    /**
     * 司机冷链小黑板 公里数、装货时间升序
     */
    List<CargoInfoEntity> selectColdCarrierPageAsc(
            @Param("loadAddress")String loadAddress,
            @Param("unloadAddress")String unloadAddress,
            @Param("sort")String sort,
            @Param("pageSize")int pageSize);
    /**
     * 司机冷链小黑板 运费降序
     */
    List<CargoInfoEntity> selectColdCarrierPageDesc(
            @Param("loadAddress")String loadAddress,
            @Param("unloadAddress")String unloadAddress,
            @Param("sort")String sort,
            @Param("pageSize")int pageSize);



    List<CargoInfoEntity> selectNoColdCarrierPageAsc(
            @Param("loadAddress")String loadAddress,
            @Param("unloadAddress")String unloadAddress,
            @Param("sort")String sort,
            @Param("pageSize")int pageSize);

    List<CargoInfoEntity> selectNoColdCarrierPageDesc(
            @Param("loadAddress")String loadAddress,
            @Param("unloadAddress")String unloadAddress,
            @Param("sort")String sort,
            @Param("pageSize")int pageSize);


    /**
     * 货源（发布中）总条数
     */
    int getTotalSize(
            @Param("loadAddress")String loadAddress,
            @Param("unloadAddress")String unloadAddress,
            @Param("sort")String sort,
            @Param("pageSize")int pageSize);

    /**
     * 根据cargoId修改货源状态
     */
    int cargoStatusEdit(@Param("cargoId")String cargoId,@Param("cargoStatus")int cargoStatus);


    /**
     * 根据cargoId将货物重新上架
     */
    int upCargo(CargoInfoEntity cargoInfoEntity);


    int insert(CargoInfoEntity record);

    CargoInfoEntity selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(CargoInfoEntity record);

    int updateByPrimaryKeyWithBLOBs(CargoInfoEntity record);

    int updateByPrimaryKey(CargoInfoEntity record);

}